package com.un.ebs.order.task;

import com.un.ebs.order.service.OrderService;
import com.un.ebs.sys.domain.Ent;
import com.un.ebs.sys.mapper.EntMapper;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Component
public class OrderSendNotityTask {

    @Autowired
    private OrderService orderService;

    @Autowired
    private WxMpService wxService;

    @Autowired
    private EntMapper entMapper;

    private final String templeteId = "mXjMHK3yCYaslg9qkAVKCM-4MUANSfeT1UV6GB4WMZM";

    private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
    private final DecimalFormat df = new DecimalFormat("¥0");

//    private void send(OrderWaitNotify order) {
//
//        Ent config = entMapper.selectById(order.getEntId());
//
//        // TODO: 2020/1/2 微信模板消息：模板ID与详情链接需要做配置化
//        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
//                .toUser(order.getOpenId())
//                .templateId(templeteId)
//                .url("http://www.cloud-client.cn/ebs/weixin/#/orderMsgInfo/" + order.getCustId() + "/" + order.getOpenId() + "/" + order.getEntId())
//                .build();
//        templateMessage.addData(new WxMpTemplateData("first", order.getCustName() + "，你好！你的所有费用已结算完成。"));
//        templateMessage.addData(new WxMpTemplateData("keyword1", df.format(order.getTotalMoney())));
//        templateMessage.addData(new WxMpTemplateData("keyword2", df.format(order.getFirstDiscount())));
//        templateMessage.addData(new WxMpTemplateData("keyword3", sdf.format(new Date())));
//        templateMessage.addData(new WxMpTemplateData("remark", "如果您有任何疑问请及时联系我们的服务人员或者拔打96321！"));
//        try {
//            wxService.switchoverTo(config.getWxAppId()).getTemplateMsgService().sendTemplateMsg(templateMessage);
//            orderService.recordNotifyByCustId(order.getCustId());
//        } catch (WxErrorException e) {
//            e.printStackTrace();
//        }
//    }
//
//    //@Scheduled(fixedDelay = 1 * 60000)
//    public void SendNotity() {
//        List<OrderWaitNotify> list = orderService.queryWaitNotify();
//        for (OrderWaitNotify order : list) {
//            send(order);
//        }
//    }
}
